package com.chy.blog_server.modular.web.entity;

import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.chy.blog_server.core.util.UserUtil;
import com.chy.blog_server.modular.sharCore.BaseEntity;
import com.chy.blog_server.modular.system.entity.SysUser;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import javax.servlet.http.HttpServletRequest;
import java.util.Date;


/**
 * 描述：空间用户表 实体类
 * 作者：chenhuiyan
 * 时间：2020/04/02
 */
@Getter
@Setter
@TableName(value = "bo_space_user")
public class BoSpaceUser extends BaseEntity {

    /**
     * 用户名
     */
    @TableField(value = "user_name")
    private String userName;

    /**
     * 帐号
     */
    private String account;

    /**
     * 密码
     */
    private String password;

    /**
     * 性别（0男，1女）
     */
    private Integer sex;

    /**
     * 类型（0他，1她，2其他）
     */
    private Integer type;

    /**
     * 帐号状态（0正常，1冻结，2封停）
     */
    private Integer status;

    /**
     * 职业
     */
    private String professional;

    /**
     * 爱好
     */
    private String hobby;

    /**
     * 年龄
     */
    private Integer age;

    /**
     * 介绍
     */
    private String introduce;

    /**
     * 生日
     */
    @DateTimeFormat(pattern = "yyy-MM-dd")
    private Date bothday;

    /**
     * 身高(cm)
     */
    private Integer tall;

    /**
     * 备注
     */
    private String remark;

    /**
     * 头像
     */
    @TableField(value = "head_url")
    private String headUrl;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 添加数据时调用该方法生成
     * @param request
     */
    public void preInsert(HttpServletRequest request){
        SysUser user = UserUtil.getUserFromSession(request);
        if(ObjectUtil.isNotEmpty(user)){
            this.setCreateBy(user.getId());
            this.setUpdateBy(user.getId());
        }
        this.setId(IdUtil.simpleUUID());
        this.setCreateDate(new Date());
        this.setUpdateDate(new Date());
    }

    /**
     * 更新数据时调用该方法生成
     * @param request
     */
    public void preUpdate(HttpServletRequest request){
        SysUser user = UserUtil.getUserFromSession(request);
        if(ObjectUtil.isNotEmpty(user)){
            this.setUpdateBy(user.getId());
        }
        this.setUpdateDate(new Date());
    }

}
